//
//  BaseDrawView.m
//  Quartz2DDemo
//
//  Created by abc on 2019/4/26.
//  Copyright © 2019年 汪保锋. All rights reserved.
//

#import "BaseDrawView.h"

@implementation BaseDrawView


-(id)initWithFrame:(CGRect)frame {
    
    if (self = [super initWithFrame:frame]) {
        
        self.backgroundColor = [UIColor whiteColor];
    }
    return self;
}

//M_PI的含义:π
//M_PI * 2的含义:2π

//M_PI_2的含义:π/2
//M_PI / 2的含义:π/2

// 画的图形路径
//bezierPathWithArcCenter:弧所在的圆心
//radius:圆的半径
//startAngle:开始角度,圆的最右侧为0度
//endAngle:截至角度,向下为正,向上为负.
//clockwise:时针的方向,yes:顺时针 no:逆时针

-(void)drawRect:(CGRect)rect {
    
  
    [self drawline];
    
    [self drawAddRect];

    [self drawAddArc];
    
}


//画直线

-(void)drawline {
    
    //第一步：获得图形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //保存一份最初的图形上下
    CGContextSaveGState(ctx);
    //新建一个起点
    CGContextMoveToPoint(ctx, 100, 100);
    //添加新的线段到某个点(新增的直线都是以上一个尾点作为起点)
    CGContextAddLineToPoint(ctx, 200, 100);
    //添加新的线段到某个点
    CGContextAddLineToPoint(ctx, 200, 200);
    //添加新的线段到某个点
    CGContextAddLineToPoint(ctx, 300, 200);
    //添加新的线段到某个点
    CGContextAddLineToPoint(ctx, 100, 100);
    
    //设置线段宽度
    CGContextSetLineWidth(ctx, 10);
    //设置线段头尾部的样式
    CGContextSetLineCap(ctx, kCGLineCapSquare);
    //设置线段转折点的样式
    CGContextSetLineJoin(ctx, kCGLineJoinRound);
    //设置颜色
    CGContextSetRGBStrokeColor(ctx, 1, 0.2, 0.8, 1);
    //去画线
    CGContextStrokePath(ctx);
    // 去填充
//    CGContextFillPath(ctx);
    
    //绘制第二条线
    CGContextRestoreGState(ctx);
    //绘制其他的线
    CGContextMoveToPoint(ctx, 30, 30);
    CGContextAddLineToPoint(ctx, 70, 70);
    CGContextStrokePath(ctx);
    
}

//画矩形
-(void)drawAddRect {
    //获得图形上下文
     CGContextRef ctx = UIGraphicsGetCurrentContext();
    //矩阵操作
    //注意点：设置矩阵操作必须要在添加绘图信息之前
    //旋转45度
    //    旋转
//    CGContextRotateCTM(ctx, M_PI_4);
    
    //设置线段宽度
    CGContextSetLineWidth(ctx, 5);
    //设置线段头尾部的样式
    CGContextSetLineCap(ctx, kCGLineCapSquare);
    //设置线段转折点的样式
    CGContextSetLineJoin(ctx, kCGLineJoinRound);
    //设置颜色
    CGContextSetRGBStrokeColor(ctx, 1, 0.5, 0.5, 1);
   
    
    //添加一个矩形
    CGContextAddRect(ctx, CGRectMake(10, 10, 200, 80));
    //缩放
    CGContextScaleCTM(ctx, 2, 2);

    //去画线
    CGContextStrokePath(ctx);
    
}

//画椭圆
-(void)drawEllipseInRect {
    
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //画一个椭圆
    CGContextAddEllipseInRect(ctx, CGRectMake(210, 10, 100, 80));
    //设置颜色
    CGContextSetRGBStrokeColor(ctx, 1, 0.5, 0.5, 1);
    
    //设置线段宽度
    CGContextSetLineWidth(ctx, 5);
    CGContextStrokePath(ctx);
}

//画圆弧
-(void)drawAddArc {
    
    //第一步：获得图形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //新建一个起点
    CGContextMoveToPoint(ctx, 300, 300);
    
    CGContextAddArc(ctx, 300, 300, 50, M_PI_2, M_PI_2*0.3, 1);

    [[UIColor redColor] set];
    CGContextFillPath(ctx);

}




@end
